import numpy
from scipy.interpolate import LinearNDInterpolator

import charged


def build_E_SC_interpolator(traj: numpy.ndarray, rings_info:charged.RingsInfo) -> LinearNDInterpolator:
    """
    根据给定轨迹，构建空间电荷场的插值器
    :param traj: 暂时参考algorithm中生成的traj_data的结构，即shape (N_particles, 2, N_time), 其中元素个数为2的那一维的两个元素分别是z, pz
    :return 空间电荷场的插值器intp, 该插值器的调用方式：intp(t:float, z:numpy.ndarray)->numpy.ndarray, 即，输入时间t和位置z，返回该处、该位置空间电荷场的大小
    """
if __name__ == '__main__':
    """
    自行编写测试代码，验证计算的可靠性
    """
